Show suspect links with only object text changes

DXL is fresh to me. I am trying to implement the similar functionalities as suspect links provided by DOORS, but I only care about the object text changes. I need to show the suspection links, clear and clear all. you are welcome and appreicated to share with me any suggestion or ideas. Thanks in advance.
westerian - Wed Nov 02 16:05:18 EDT 2011

Re: Show suspect links with only object text changes
Mathias Mamsch - Wed Nov 02 21:08:47 EDT 2011

Well lets talk about the obvious solution first, what about disabling the "Affects change dates" for all other attributes than "Object Text"? This will make links only suspicious if object text is changed. Otherwise you would need to reprogram the comparison that the link suspicion code does. For outlinks/forward suspicions that would be (same applies to inlinks/backward suspicions):
  • if there is a "Link Suspicion Cleared Forwards" attribute set then compare the "Last Modified Time" of the link target to that date. If the target was modified after the last clearing, then show link suspicious
  • If no "Link Suspicion Cleared Forwards" date is set, then check if the target object has been modified after the link has been created. If so show a suspicion.

In your case if you cannot use the change date, you need to implement a trigger that will set a special attribute on the objects that stores the time and date of the last modification of "Object Text" and use that instead of the "Last Modified Time".

Maybe that helps, Regards, Mathias

Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS

Re: Show suspect links with only object text changes
westerianback - Wed Nov 02 22:59:29 EDT 2011

Mathias Mamsch - Wed Nov 02 21:08:47 EDT 2011
Well lets talk about the obvious solution first, what about disabling the "Affects change dates" for all other attributes than "Object Text"? This will make links only suspicious if object text is changed. Otherwise you would need to reprogram the comparison that the link suspicion code does. For outlinks/forward suspicions that would be (same applies to inlinks/backward suspicions):

  • if there is a "Link Suspicion Cleared Forwards" attribute set then compare the "Last Modified Time" of the link target to that date. If the target was modified after the last clearing, then show link suspicious
  • If no "Link Suspicion Cleared Forwards" date is set, then check if the target object has been modified after the link has been created. If so show a suspicion.

In your case if you cannot use the change date, you need to implement a trigger that will set a special attribute on the objects that stores the time and date of the last modification of "Object Text" and use that instead of the "Last Modified Time".

Maybe that helps, Regards, Mathias

Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS

Thank you Mathias for your reponse. I can't control the target module, so as you suggested, I might reprogram suspect links. I need to trace the text changes for the linked target objects between the last clear of the suspect link and current. It is better to display these two version texts and then can analysis what kind of impact to the source object. After I take action on the source object, I'd like to clear the suspicion. As I have no any idea of dxl script, you are greatly appreciated if you have some similar code to share with me? or any code will be helpful to me. Thanks again.

Re: Show suspect links with only object text changes
llandale - Fri Nov 04 11:46:45 EDT 2011

Mathias is correct but I don't think its realistic to turn off "change Dates" for all attributes <1> someone else may depend on them <2> you cannot turn off Object Heading and a couple others.

His trigger idea, that detects an immediate change to Text and sets a flag in another attribute is sound. Perhaps that other attribute is type "Date" and reflects the current Date and Time. Lets hope folks don't start monkeying with that value, which you could protect with a different trigger. You would need Edit access to the module, or far less desirably to the other module's Project. You will need help with the trigger.

You can browse the other object's History looking for modifications to attribute "Object History", get the date of the last such History, and compare it to your threshold date. Baselining a module will force a reset of your threshold, unless you are willing to open old baselines looking for History for that object. This is the solution I have implemented for a similar problem, but its slow for my huge reports and I'm not happy with it.

If your threshold Date reflects fixed dates in time, and you know when those events are, you could write code taht is run at the time of the event (such as sending module to a contractor) that simply copies the Object text to another Attribute. The "link" is suspicious when the that other object's Text is not the same as the backup. Lets just put the date in the name of the attribute, perhaps "TextAsOf_2011-Nov-04".

Raw text comparison is probably best. In fact, in years past comparing Rich Text failed, even when I did this:

Object obj = current
set(obj."Backup", obj."Object Text")
//obj."Backup" = richText(richTextWithOle(obj."Object Text"))
string Text = richTextWithOle(obj."Object Text")
string Back = richTextWithOle(obj."Backup")
if (Text == Back) //
then print "Same\n"
else print "Different\n"
set(obj."Backup", obj."Object Text") does not fix the problem.

  • Louie